Router or bridge device comprising an installation application

ABSTRACT

A router or bridge device for connecting for example a local area network to a wide area network is described. According to the invention, the router comprises: means for connection to a first network and means for connection to a second network; an application for selecting configuration parameters, wherein the application applies a template for presenting parameters to a user, said template being uploadable to said device.

A router or bridge device comprising an installation application Manynetworking devices, such as a router or a bridge, adapted to connect apersonal computer or similar device or more largely a Local Area Network(LAN) to a Wide Area Network (WAN), are shipped with an installationapplication (usually called a ‘wizard’) running on a personal computerconnected to the router through a local network or directly, andenabling the technically inexperienced end user to configure thisproduct, initially programmed with factory defaults settings, to theneeds of the specific Internet Service Provider (‘ISP’) the end user hasselected. Known wizards had (and apparently still have), one commonbehavior: they use a fixed pattern of questions to guide the end-userthrough the installation process.

If a specific ISP uses a relatively uncommon network setup (e.g. anysetup different from Point to Point Protocol with Network AddressTranslation (‘PPP with NAT’) a corresponding customized wizard has to beprovided by the router manufacturer.

To avoid the pitfall of having to design customized wizards over andover again, a configurable wizard was developed.

Using template text files, the behavior of this type of wizard can becustomized in a very easy way: adding a single file on an installationCD before shipping it to the end user defines the setup wizard as itwill present itself to the end user trying to install his router.Multiple templates are allowed, so that multiple router configurationtypes can be shipped on the CD.

By deciding what templates to include on the CD, the ISP can customizethe wizard without intervention of the router manufacturer. The wizardsdiscussed so far were all applications running on a PC platform.Contrary to a host driven installation where an application running onthe host (PC, MAC, UNIX, LINUX, . . . controls the installation process,an embedded wizard runs on the DSL router itself and using an embeddedweb server, it interacts with the end user through an interface that isavailable on most known platforms: a web browser.

Fixed embedded wizards have all the drawbacks cited above. An ISPwanting an embedded wizard with specific behavior needs a customizedsoftware build to be installed on the router. Whereas a customized hostwizard is relatively easy to develop and test, changing the wizardbehavior of an embedded system is much longer and more complex.

The invention concerns a router or bridge device characterized in thatit comprises

-   means for connection to a first network and means for connection to    a second network;-   an application for selecting configuration parameters, wherein the    application applies a template for presenting parameters to a user,    said template being uploadable to said device.

Software embedded in a real-time networking device is generallyconsidered to be a complex task. However, the proposed solution allowssimple configuration of an embedded wizard. Moreover, the solution isindependent of a particular operating system of a host through which thedevice configuration is carried out (e.g. using a browser application).

The invention will be better understood through the description of anon-restricting embodiment, explained with the help of:

FIGS. 1 to 5, representing the user interface of an embeddedinstallation application based on the template of appendix A, as shownusing a personal computer browser application;

FIG. 6 representing a block diagram of a network comprising a deviceequipped with the installation application according to the embodiment;

FIG. 7 is a flowchart of a process carried out by the software of thedevice.

The present embodiment concerns a DSL router, but is not limited to suchan environment.

The inventors designed a configurable embedded wizard.

Using template text files the behavior of the wizard can be customizedin a very easy way: a single file upload to the router before shippingit to the end user completely defines the setup wizard as it willpresent itself to the end user trying to install his router.

According to the present embodiment, multiple templates are allowed sothat multiple DSL configuration types can be used on just one router.Multiple template files are stored concurrently in the router.

Although uploading the template file to the router should typically bedone before shipping the router, it can be done in a very easy way bythe end user as well. Templates activating new functionalities can bedistributed via the ISP's portal, via email or any other electronicdistribution system.

FIG. 6 is a block diagram of a network comprising a local area networkconnected to the Internet through a router 4. The local area networkcomprises, as an example, devices 1 and 2, as well as a personalcomputer 3, all connected through bus 12. Bus 12 is for examplecompliant with IEEE 802.3 (Ethernet). The personal computer runs abrowser application 11, well known per se. The LAN also comprises arouter 4, connected to a digital subscriber line access multiplexer(DSLAM) 5 through a local telephone line. The DSLAM is connected to theInternet in a known fashion through network 8. A server 7 may beaccessed through this connection, in particular to downloadconfiguration templates.

The router 4 comprises a microprocessor 10 and a memory 9. The memory 9stores an embedded installation application for setting up the routerand configuring parameters described below. It also stores a bootprogram (not illustrated), as well as a template file, a userconfiguration file and a default configuration file.

The router also comprises the necessary physical interfaces to the LANand the telephone line, as well as the corresponding protocols. Theseinterfaces and protocols being well known per se, only the ADSL protocolstack 13 is illustrated as an example.

When the router is physically connected to the network and powered, itcarries out a boot procedure. If no configuration has yet been carriedout, a corresponding flag in the router indicates so. Further tobooting, the router sets up a DHCP server and a DNS and HTTP intercept.The router is set as the default DNS server and gateway of the hostpersonal computer (communicated using DHCP). When the personal computerissues a DNS or HTTP request (e.g. when the user wishes to set up aconnection), this request is intercepted by the router and if the flagindicates that configuration still needs to be carried out, the requestis redirected to the first page of the embedded wizard.

The wizard generates HTML pages based on the template file. These pagesare accessed and displayed by the personal computer, the router actingas a server. In order to enable the personal computer to communicatewith the router at this level, there must be IP connectivity between thetwo devices. In the present case, this implies that both the host andthe router have IP addresses in the same IP network.

According to the present embodiment, the router upgrade and setup wizardcan upload new templates to the router.

The following section explains in detail how the router's configurableembedded wizard according to the present embodiment works.

A default template is present on the router to cover often-usedscenarios without the need for customization. The default template isfor example the template used by a fixed embedded wizard of the priorart.

An ISP requiring a different wizard behavior will design a template file(or several such files) covering its needs and upload it to the routerbefore shipping it to the end user.

Uploading a template can be done using the file transfer protocol(“ftp”) (typically in order fulfillment), through the router setup orupgrade wizard run on the computer 3, by the end user through one of thefirst choices presented to him through the embedded wizard, or using an‘advanced file’ upload web page (i.e. a page allowing the uploading tothe router of different files—.tpl, .ini, def). According to the presentembodiment, the template file defines the wizard behavior:

-   -   How many screens, titles of the screens, subtitles and help        text.    -   What questions are asked on every screen, including the        corresponding help text . . .    -   The selection possibilities for every screen: text boxes, list        boxes, combo boxes, radio buttons . . .

Using conditional command execution, a huge variety of configurationsand configuration options can be stored in just one template file.

Based on the template file selected, the router according to the presentembodiment generates the corresponding web pages comprising allnecessary controls.

FIG. 1 represent a welcome page of the wizard. This page may comprise anappropriate explanation about the purpose and content of the setup andconfiguration process.

FIG. 2 represents a page that allows the user to select a template. Thistemplate may be a template already stored in the router. The user mayalso decide to upload a new template, to be added to the storedtemplates.

FIG. 3 represents a page giving the user the choice of configuringvirtual path and virtual channel parameters, whereas FIG. 4 allows theuser to configure PPP parameters. An extract of the templatecorresponding to the pages of FIGS. 3 and 4 is given in the Appendix A.FIGS. 3 and 4 represent just two parameter selection pages as a way ofexample, other pages may also be shown.

The page of FIG. 5 contains a list of parameter values previouslyselected, and allows the user to review the values. If these values areincorrect, the user may backtrack through the different pages to changevalues.

A configuration corresponds to the instantiation of a template, giventhe inputs of the user. User responses are sent from the host to therouter using the http protocol.

After completing the answers to the questions of the configurationwizard (stepping through the wizard screens) the router saves allinformation gathered in the template file for further use and generatesa compact configuration file for its own use (the—as such—well known.ini file). The flag indicating whether a configuration has been carriedout is set, and the originally requested page is loaded. The .ini filecontains all required configuration commands for the router. As comparedto the .tpl file, all parameterization and ‘wizard’ commands areremoved.

The above process is illustrated by the flowchart of FIG. 7.

According a variant embodiment, several configuration files,corresponding either to different templates or to differentinstantiations of a same template may be stored by the router. However,only one configuration file is active at a given moment. A pointer isset to the active configuration and used until changed by the user (thecorresponding wizard screen is not illustrated).

There are three levels of configuration: the user configuration, the ISPconfiguration and the default configuration. If for any reason, a topicrequired by the router software is not available in the userconfiguration, the software looks for this topic first in the ISPconfigurations and lastly in the default configuration. Topics presentin the configuration files that are not required by the software aresimply ignored. For the sake of clarity, a topic is a set ofconfiguration commands configuring specific service or protocol. A grouprepresents a wizard screen containing all kinds of configuration itemsthat are not necessarily in a single topic.

Appendix A: Example of a Template File (Extract)

[wizard.ini ]

def var=atm type=grp desc=“ATM VPI/VCI value” help=“Configure theVPI/VCI value. This value should be provided by your ISP” alias=“ATMparameters” def var=vpvc type=combo grp=atm desc=“Select the correctVPI/VCI value” alias=“VPI/VCI” req=yes default=“8*35”data=“0*35,0*36,0*37,0*38,0*39,0*40,8*35,8*36,8*37,8*38,8*39,8*40”

def var=ppp type=grp desc=“Configure PPP parameters”alias=“Point-to-point_protocol” help=“Configere the PPP, settings. Thesevalues should be provided by your ISP”

def var=ppptype type=list grp=ppp alias=“PPP type” desc=“Select the PPPtype” data=“PPPoA,PPPoE”

def var=dialtype type=list grp=ppp alias=“Dial-in mode” desc=“Selectyour preferred dial-in mode” data=“dial,dod,on”dalias=“Dial-in,Dial_on_demand,Always_on” default=“on”

Explanations of some of the commands used in the above template aregiven in the following paragraphs.

The ‘def’ command is a command line interface (CLI) command providing away to describe the structured content and appearance of the setupwizard. The ‘def’ command has a global set of arguments having aspecific meaning dependent on the type of definition. There are twotypes of definitions: group definitions and variable definitions.Variables are associated to a group. A group corresponds to theinformation presented on a single page of the wizard.

Table 1 gives the parameters of a group definition: TABLE 1 var RequiredName of the group (a ‘topic’ in the wizard), used as a reference ifvariables are added. A user-friendly name of the group can be specifiedusing the ‘alias’ parameter type Required ‘grp’ (fixed value for agroup) grp Ignored desc Required A text to be displayed in the header ofthe wizard page screen help Optional An additional help text to bedisplayed above the variable section panel of the wizard screen aliasOptional User-friendly name of the group, which is displayed in the toppart on the page. If this field is not specified, the group name (var)will be used instead. req Ignored default Ignored data Ignored daliasIgnored min Ignored max Ignored

Table 2 indicates a group variable definition TABLE 2 var Required Nameof the environment variable. A user-friendly name of this variable canbe set using the alias parameter. type Required Type of the variable,defining among other things the presentation on a page by the wizard.grp Required The name of the group to which this variable belongs. descRequired A text describing the variable or the action requested from theuser in association with this variable, for display on the page helpIgnored alias Optional User-friendly name of the variable, as it will beused for display. If not specified, the name pas given by var will beused. Req Optional Specifies whether a value is required for this vari-able or not. default Optional Specifies a default value. If specified,this value is displayed as the default value (e.g. in a list of possiblevalues) data Optional Possible values for this variable. dalias OptionalUser-friendly names for each possible value. min Optional Type dependentparameter max Optional Type dependent parameter

Possible variable types are: String, Password, Integer, Combo List,List, Boolean, IP Address, IP Mask, Radio (set of exclusive choices).

1. A router or bridge device comprising means for connection to a firstnetwork and means for connection to a second network; an application forselecting configuration parameters, wherein the application applies atemplate for presenting parameters to a user, said template beinguploadable to said device.
 2. Device according to claim 1, comprising aplurality of templates.
 3. Device according to claim 2, wherein theapplication comprises means for generating a template selection displayto a user.
 4. Device according to claim 2, wherein the applicationcomprises means for loading a template from at least one of: a hostdevice connected to the second network, a server connected to the firstnetwork.
 5. Device according to claim 1, wherein said application is aweb server provided with means for generating pages for display on aremote display.
 6. Device according to claim 5, wherein said display ispart of a host device comprising a browser for accessing the pages andfor interacting with a user for selection of the configurationparameters.
 7. Device according to claim 1, wherein the application isadapted to generate at least one configuration file based on at leastone template.
 8. Device according to claim 7, comprising a factorydefault configuration.
 9. Device according to claim 7, comprising aconfiguration predetermined by an Internet service provider.
 10. Deviceaccording to claim 9, wherein a priority is established between a userconfiguration, an internet service provider configuration and a factorydefault configuration in that order and wherein a parameter required bydevice software not found in one configuration is taken from a lowerpriority configuration.